package vista.servlet;

import java.io.IOException;
import java.io.OutputStream;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import modelo.bean.OperacionBean;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;

public class GenerarGraficaOperacionesServlet extends BolsaServlet{

	
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
	{
		
		List <OperacionBean>listaOperaciones = (List <OperacionBean>) request.getSession().getAttribute("listaOperaciones");
		List <OperacionBean>listaOperacionesEstrategia = (List <OperacionBean>) request.getSession().getAttribute("listaOperacionesEstrategia");
				
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
		
		
		
		if(listaOperaciones!=null && !listaOperaciones.isEmpty()){
			
			for (int i=0;i<listaOperaciones.size();i++){
				
				dataset.setValue(listaOperaciones.get(i).getPorcentaje(),"porcentaje de ganancias", listaOperaciones.get(i).getCompra().getValorComprado() );
			//	dataset.setValue(listaOperaciones.get(i).getPorcentaje(),"porcentaje de ganancias", listaOperaciones.get(i).getCompra().getValorComprado() );
				
				
			}
		}
	/*	if(listaOperacionesEstrategia!=null && !listaOperacionesEstrategia.isEmpty()){
			
			for (int i=0;i<listaOperacionesEstrategia.size();i++){
				
				dataset2.setValue(listaOperacionesEstrategia.get(i).getPorcentaje(),"porcentaje de ganancias", listaOperacionesEstrategia.get(i).getCompra().getValorComprado() );
				
				
			}
		}
		*/
		JFreeChart chart = ChartFactory.createBarChart(

						"Line Chart Demo 2", // chart title
						"valores", // x axis label
						"porcentaje ganancias", // y axis label
						dataset, // data
						//dataset2,
						PlotOrientation.VERTICAL,
						true, // include legend
						true, // tooltips
						false // urls
						);
		
		CategoryPlot plot = chart.getCategoryPlot();

		CategoryAxis domainAxis = plot.getDomainAxis();
        domainAxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0));

		

		/*
	XYPlot plot = chart.getXYPlot();
	
	 NumberAxis domainAxis = new NumberAxis("x");
	 NumberAxis rangeAxis = new LogarithmicAxis("Log(y)");
	 plot.setDomainAxis(domainAxis);
	 plot.setRangeAxis(rangeAxis);
*/
	
	//plot.setAxisOffset(new Spacer(Spacer.ABSOLUTE, 9.0, 10.0, 0.0, 5.0));
	
		response.setContentType("image/png");
		OutputStream out = response.getOutputStream();
		ChartUtilities.writeChartAsPNG(out, chart, 700, 700);
		out.close();
		
	}
	
	
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException

	{
		doPost(request,response);
	}
}
